Skip to content

Latest commit

 

History

History
37 lines (32 loc) · 1.43 KB

4.3 - Coroutine/Client.md

File metadata and controls

37 lines (32 loc) · 1.43 KB

Coroutine\Client

Swoole\Coroutine\Client提供了TCPUDP传输协议Socket客户端的封装代码,使用时仅需new Swoole\Coroutine\Client即可。

  • Swoole\Coroutine\Client底层实现协程调度,业务层无需感知
  • 使用方法和Swoole\Client同步模式方法完全一致
  • connect超时设置同时作用于ConnectRecvSend 超时
  • 除了正常的调用外,Swoole\Coroutine\Client还支持并行请求。
  • 使用方法和Swoole\Client一致的此处不再列出,请参考 Swoole\Client,对于使用有区别的函数,此处单独说明

协程版实例

$client = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501, 0.5))
{
	exit("connect failed. Error: {$client->errCode}\n");
}
$client->send("hello world\n");
echo $client->recv();
$client->close();

协议处理

协程客户端也支持长度和EOF协议处理,设置方法与 Swoole\Client 完全一致。

$client = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
$client->set(array(
    'open_length_check'     => 1,
    'package_length_type'   => 'N',
    'package_length_offset' => 0,       //第N个字节是包长度的值
    'package_body_offset'   => 4,       //第几个字节开始计算长度
    'package_max_length'    => 2000000,  //协议最大长度
));